@flagWidth: 16px;
@flagHeight: 11px;

.flagPos (@col, @row) {
  background-position: -(@col * @flagWidth) -(@row * @flagHeight);
}

.flag {
  width: @flagWidth;
  height: @flagHeight;
  display: inline-block;
  background: url("/bundles/pimui/images/flags.png") no-repeat;
  vertical-align: baseline;
  &.flag-ad {.flagPos(1, 0);}
  &.flag-ae {.flagPos(2, 0);}
  &.flag-af {.flagPos(3, 0);}
  &.flag-ag {.flagPos(4, 0);}
  &.flag-ai {.flagPos(5, 0);}
  &.flag-al {.flagPos(6, 0);}
  &.flag-am {.flagPos(7, 0);}
  &.flag-an {.flagPos(8, 0);}
  &.flag-ao {.flagPos(9, 0);}
  &.flag-ar {.flagPos(10, 0);}
  &.flag-as {.flagPos(11, 0);}
  &.flag-at {.flagPos(12, 0);}
  &.flag-au {.flagPos(13, 0);}
  &.flag-aw {.flagPos(14, 0);}
  &.flag-az {.flagPos(15, 0);}
  &.flag-ba {.flagPos(0, 1);}
  &.flag-bb {.flagPos(1, 1);}
  &.flag-bd {.flagPos(2, 1);}
  &.flag-be {.flagPos(3, 1);}
  &.flag-bf {.flagPos(4, 1);}
  &.flag-bg {.flagPos(5, 1);}
  &.flag-bh {.flagPos(6, 1);}
  &.flag-bi {.flagPos(7, 1);}
  &.flag-bj {.flagPos(8, 1);}
  &.flag-bm {.flagPos(9, 1);}
  &.flag-bn {.flagPos(10, 1);}
  &.flag-bo {.flagPos(11, 1);}
  &.flag-br {.flagPos(12, 1);}
  &.flag-bs {.flagPos(13, 1);}
  &.flag-bt {.flagPos(14, 1);}
  &.flag-bv {.flagPos(15, 1);}
  &.flag-bw {.flagPos(0, 2);}
  &.flag-by {.flagPos(1, 2);}
  &.flag-bz {.flagPos(2, 2);}
  &.flag-ca {.flagPos(3, 2);}
  &.flag-catalonia {.flagPos(4, 2);}
  &.flag-cd {.flagPos(5, 2);}
  &.flag-cf {.flagPos(6, 2);}
  &.flag-cg {.flagPos(7, 2);}
  &.flag-ch {.flagPos(8, 2);}
  &.flag-ci {.flagPos(9, 2);}
  &.flag-ck {.flagPos(10, 2);}
  &.flag-cl {.flagPos(11, 2);}
  &.flag-cm {.flagPos(12, 2);}
  &.flag-cn {.flagPos(13, 2);}
  &.flag-co {.flagPos(14, 2);}
  &.flag-cr {.flagPos(15, 2);}
  &.flag-cu {.flagPos(0, 3);}
  &.flag-cv {.flagPos(1, 3);}
  &.flag-cw {.flagPos(2, 3);}
  &.flag-cy {.flagPos(3, 3);}
  &.flag-cz {.flagPos(4, 3);}
  &.flag-de {.flagPos(5, 3);}
  &.flag-dj {.flagPos(6, 3);}
  &.flag-dk {.flagPos(7, 3);}
  &.flag-dm {.flagPos(8, 3);}
  &.flag-do {.flagPos(9, 3);}
  &.flag-dz {.flagPos(10, 3);}
  &.flag-ec {.flagPos(11, 3);}
  &.flag-ee {.flagPos(12, 3);}
  &.flag-eg {.flagPos(13, 3);}
  &.flag-eh {.flagPos(14, 3);}
  &.flag-england {.flagPos(15, 3);}
  &.flag-er {.flagPos(0, 4);}
  &.flag-es {.flagPos(1, 4);}
  &.flag-et {.flagPos(2, 4);}
  &.flag-eu {.flagPos(3, 4);}
  &.flag-fi {.flagPos(4, 4);}
  &.flag-fj {.flagPos(5, 4);}
  &.flag-fk {.flagPos(6, 4);}
  &.flag-fm {.flagPos(7, 4);}
  &.flag-fo {.flagPos(8, 4);}
  &.flag-fr {.flagPos(9, 4);}
  &.flag-ga {.flagPos(10, 4);}
  &.flag-gb {.flagPos(11, 4);}
  &.flag-gd {.flagPos(12, 4);}
  &.flag-ge {.flagPos(13, 4);}
  &.flag-gf {.flagPos(14, 4);}
  &.flag-gg {.flagPos(15, 4);}
  &.flag-gh {.flagPos(0, 5);}
  &.flag-gi {.flagPos(1, 5);}
  &.flag-gl {.flagPos(2, 5);}
  &.flag-gm {.flagPos(3, 5);}
  &.flag-gn {.flagPos(4, 5);}
  &.flag-gp {.flagPos(5, 5);}
  &.flag-gq {.flagPos(6, 5);}
  &.flag-gr {.flagPos(7, 5);}
  &.flag-gs {.flagPos(8, 5);}
  &.flag-gt {.flagPos(9, 5);}
  &.flag-gu {.flagPos(10, 5);}
  &.flag-gw {.flagPos(11, 5);}
  &.flag-gy {.flagPos(12, 5);}
  &.flag-hk {.flagPos(13, 5);}
  &.flag-hm {.flagPos(14, 5);}
  &.flag-hn {.flagPos(15, 5);}
  &.flag-hr {.flagPos(0, 6);}
  &.flag-ht {.flagPos(1, 6);}
  &.flag-hu {.flagPos(2, 6);}
  &.flag-ic {.flagPos(3, 6);}
  &.flag-id {.flagPos(4, 6);}
  &.flag-ie {.flagPos(5, 6);}
  &.flag-il {.flagPos(6, 6);}
  &.flag-im {.flagPos(7, 6);}
  &.flag-in {.flagPos(8, 6);}
  &.flag-io {.flagPos(9, 6);}
  &.flag-iq {.flagPos(10, 6);}
  &.flag-ir {.flagPos(11, 6);}
  &.flag-is {.flagPos(12, 6);}
  &.flag-it {.flagPos(13, 6);}
  &.flag-je {.flagPos(14, 6);}
  &.flag-jm {.flagPos(15, 6);}
  &.flag-jo {.flagPos(0, 7);}
  &.flag-jp {.flagPos(1, 7);}
  &.flag-ke {.flagPos(2, 7);}
  &.flag-kg {.flagPos(3, 7);}
  &.flag-kh {.flagPos(4, 7);}
  &.flag-ki {.flagPos(5, 7);}
  &.flag-km {.flagPos(6, 7);}
  &.flag-kn {.flagPos(7, 7);}
  &.flag-kp {.flagPos(8, 7);}
  &.flag-kr {.flagPos(9, 7);}
  &.flag-kurdistan {.flagPos(10, 7);}
  &.flag-kw {.flagPos(11, 7);}
  &.flag-ky {.flagPos(12, 7);}
  &.flag-kz {.flagPos(13, 7);}
  &.flag-la {.flagPos(14, 7);}
  &.flag-lb {.flagPos(15, 7);}
  &.flag-lc {.flagPos(0, 8);}
  &.flag-li {.flagPos(1, 8);}
  &.flag-lk {.flagPos(2, 8);}
  &.flag-lr {.flagPos(3, 8);}
  &.flag-ls {.flagPos(4, 8);}
  &.flag-lt {.flagPos(5, 8);}
  &.flag-lu {.flagPos(6, 8);}
  &.flag-lv {.flagPos(7, 8);}
  &.flag-ly {.flagPos(8, 8);}
  &.flag-ma {.flagPos(9, 8);}
  &.flag-mc {.flagPos(10, 8);}
  &.flag-md {.flagPos(11, 8);}
  &.flag-me {.flagPos(12, 8);}
  &.flag-mg {.flagPos(13, 8);}
  &.flag-mh {.flagPos(14, 8);}
  &.flag-mk {.flagPos(15, 8);}
  &.flag-ml {.flagPos(0, 9);}
  &.flag-mm {.flagPos(1, 9);}
  &.flag-mn {.flagPos(2, 9);}
  &.flag-mo {.flagPos(3, 9);}
  &.flag-mp {.flagPos(4, 9);}
  &.flag-mq {.flagPos(5, 9);}
  &.flag-mr {.flagPos(6, 9);}
  &.flag-ms {.flagPos(7, 9);}
  &.flag-mt {.flagPos(8, 9);}
  &.flag-mu {.flagPos(9, 9);}
  &.flag-mv {.flagPos(10, 9);}
  &.flag-mw {.flagPos(11, 9);}
  &.flag-mx {.flagPos(12, 9);}
  &.flag-my {.flagPos(13, 9);}
  &.flag-mz {.flagPos(14, 9);}
  &.flag-na {.flagPos(15, 9);}
  &.flag-nc {.flagPos(0, 10);}
  &.flag-ne {.flagPos(1, 10);}
  &.flag-nf {.flagPos(2, 10);}
  &.flag-ng {.flagPos(3, 10);}
  &.flag-ni {.flagPos(4, 10);}
  &.flag-nl {.flagPos(5, 10);}
  &.flag-no {.flagPos(6, 10);}
  &.flag-np {.flagPos(7, 10);}
  &.flag-nr {.flagPos(8, 10);}
  &.flag-nu {.flagPos(9, 10);}
  &.flag-nz {.flagPos(10, 10);}
  &.flag-om {.flagPos(11, 10);}
  &.flag-pa {.flagPos(12, 10);}
  &.flag-pe {.flagPos(13, 10);}
  &.flag-pf {.flagPos(14, 10);}
  &.flag-pg {.flagPos(15, 10);}
  &.flag-ph {.flagPos(0, 11);}
  &.flag-pk {.flagPos(1, 11);}
  &.flag-pl {.flagPos(2, 11);}
  &.flag-pm {.flagPos(3, 11);}
  &.flag-pn {.flagPos(4, 11);}
  &.flag-pr {.flagPos(5, 11);}
  &.flag-ps {.flagPos(6, 11);}
  &.flag-pt {.flagPos(7, 11);}
  &.flag-pw {.flagPos(8, 11);}
  &.flag-py {.flagPos(9, 11);}
  &.flag-qa {.flagPos(10, 11);}
  &.flag-re {.flagPos(11, 11);}
  &.flag-ro {.flagPos(12, 11);}
  &.flag-rs {.flagPos(13, 11);}
  &.flag-cs {.flagPos(13, 11);}
  &.flag-ru {.flagPos(14, 11);}
  &.flag-rw {.flagPos(15, 11);}
  &.flag-sa {.flagPos(0, 12);}
  &.flag-sb {.flagPos(1, 12);}
  &.flag-sc {.flagPos(2, 12);}
  &.flag-scotland {.flagPos(3, 12);}
  &.flag-sd {.flagPos(4, 12);}
  &.flag-se {.flagPos(5, 12);}
  &.flag-sg {.flagPos(6, 12);}
  &.flag-sh {.flagPos(7, 12);}
  &.flag-si {.flagPos(8, 12);}
  &.flag-sk {.flagPos(9, 12);}
  &.flag-sl {.flagPos(10, 12);}
  &.flag-sm {.flagPos(11, 12);}
  &.flag-sn {.flagPos(12, 12);}
  &.flag-so {.flagPos(13, 12);}
  &.flag-somaliland {.flagPos(14, 12);}
  &.flag-sr {.flagPos(15, 12);}
  &.flag-ss {.flagPos(0, 13);}
  &.flag-st {.flagPos(1, 13);}
  &.flag-sv {.flagPos(2, 13);}
  &.flag-sx {.flagPos(3, 13);}
  &.flag-sy {.flagPos(4, 13);}
  &.flag-sz {.flagPos(5, 13);}
  &.flag-tc {.flagPos(6, 13);}
  &.flag-td {.flagPos(7, 13);}
  &.flag-tf {.flagPos(8, 13);}
  &.flag-tg {.flagPos(9, 13);}
  &.flag-th {.flagPos(10, 13);}
  &.flag-tj {.flagPos(11, 13);}
  &.flag-tk {.flagPos(12, 13);}
  &.flag-tl {.flagPos(13, 13);}
  &.flag-tm {.flagPos(14, 13);}
  &.flag-tn {.flagPos(15, 13);}
  &.flag-to {.flagPos(0, 14);}
  &.flag-tr {.flagPos(1, 14);}
  &.flag-tt {.flagPos(2, 14);}
  &.flag-tv {.flagPos(3, 14);}
  &.flag-tw {.flagPos(4, 14);}
  &.flag-tz {.flagPos(5, 14);}
  &.flag-ua {.flagPos(6, 14);}
  &.flag-ug {.flagPos(7, 14);}
  &.flag-um {.flagPos(8, 14);}
  &.flag-us {.flagPos(9, 14);}
  &.flag-uy {.flagPos(10, 14);}
  &.flag-uz {.flagPos(11, 14);}
  &.flag-va {.flagPos(12, 14);}
  &.flag-vc {.flagPos(13, 14);}
  &.flag-ve {.flagPos(14, 14);}
  &.flag-vg {.flagPos(15, 14);}
  &.flag-vi {.flagPos(0, 15);}
  &.flag-vn {.flagPos(1, 15);}
  &.flag-vu {.flagPos(2, 15);}
  &.flag-wales {.flagPos(3, 15);}
  &.flag-wf {.flagPos(4, 15);}
  &.flag-ws {.flagPos(5, 15);}
  &.flag-ye {.flagPos(6, 15);}
  &.flag-yt {.flagPos(7, 15);}
  &.flag-za {.flagPos(8, 15);}
  &.flag-zanzibar {.flagPos(9, 15);}
  &.flag-zm {.flagPos(10, 15);}
  &.flag-zw {.flagPos(11, 15);}
}
